using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AnimationUtil")]
	public class AnimationUtil : MonoBehaviour
	{
		[Attribute38("AnimationUtil.PunchData")]
		public class PunchData : MonoClass
		{
			public GameObject m_gameObject => method_3<GameObject>("m_gameObject");

			public Vector3 m_scale => method_2<Vector3>("m_scale");

			public string m_callbackName => method_4("m_callbackName");

			public GameObject m_callbackGameObject => method_3<GameObject>("m_callbackGameObject");

			public object m_callbackData => method_3<object>("m_callbackData");

			public PunchData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public PunchData(IntPtr address)
				: this(address, "PunchData")
			{
			}
		}

		public AnimationUtil(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AnimationUtil(IntPtr address)
			: this(address, "AnimationUtil")
		{
		}

		public static void ShowPunch(GameObject go, Vector3 scale, string callbackName, GameObject callbackGO, object callbackData)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "AnimationUtil", "ShowPunch", go, scale, callbackName, callbackGO, callbackData);
		}

		public static void GrowThenDrift(GameObject go, Vector3 origin, Vector3 driftOffset)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "AnimationUtil", "GrowThenDrift", go, origin, driftOffset);
		}

		public static void FloatyPosition(GameObject go, Vector3 startPos, float localRadius, float loopTime)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "AnimationUtil", "FloatyPosition", new Class276.Enum20[4]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, go, startPos, localRadius, loopTime);
		}

		public static void FloatyPosition(GameObject go, float radius, float loopTime)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "AnimationUtil", "FloatyPosition", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, go, radius, loopTime);
		}

		public static void ScaleFade(GameObject go, Vector3 scale)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "AnimationUtil", "ScaleFade", new Class276.Enum20[2]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType
			}, go, scale);
		}

		public static void ScaleFade(GameObject go, Vector3 scale, string callbackName)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "AnimationUtil", "ScaleFade", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.String
			}, go, scale, callbackName);
		}

		public static void DriftObject(GameObject go, Vector3 driftOffset)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "AnimationUtil", "DriftObject", go, driftOffset);
		}

		public static void DelayedActivate(GameObject go, float time, bool activate)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "AnimationUtil", "DelayedActivate", go, time, activate);
		}
	}
}
